System entities such as threads, processes and jobs often do work on behalf of another system entity. However, conventional computing systems often lack an effective and efficient way to track work that is shared across the system entities. Previous solutions for tracking work that is shared across the system entities provided manual means of tracking work as it was transferred from system entity to another system entity. This means that at each instance of work transfer, a system entity would have to opt in to calling the right set of APIs to let the system know that work is being transferred. This did not scale to the countless places where work is being transferred in the system. Another limitation of previous solutions was that they did not incorporate the work tracking information to provide proper resource priority transfer from system entity to system entity (CPU, IO, memory) as work was being transferred. Similarly, previous solutions were not integrated with priority inversion avoidance mechanisms.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.